import React, { Component } from 'react'
import PropTypes from 'prop-types'
import { nanoid } from 'nanoid'
import './index.css'

export default class Header extends Component {

  // 对接收的props进行: 类型,必要性的限制
  static propTypes = {
    addTodo: PropTypes.func.isRequired
  }
  constructor(props) {
    super(props);
    this.handleKeyUp = this.handleKeyUp.bind(this);
  }

  // 键盘事件的回调
  handleKeyUp(e) {
    const { key, target } = e;
    if (key !== 'Enter') return;
    // 添加的name不能为空
    if(target.value.trim() === '') {
      alert('不能添加空')
      return false;
    }
    const todoObi = { id: nanoid(), name: target.value, done: false }
    // 将todoObj传递给app
    this.props.addTodo(todoObi)
    target.value = '';

  }

  render() {
    return (
      <>
        <div className="todo-header">
          <input onKeyUp={this.handleKeyUp}  type="text" placeholder="请输入你的任务名称，按回车键确认"/>
        </div>
      </>
    )
  }
}
